Different machines may run different operating systems and applications written in different programming languages, which prevents direct communication. An application cannot use information directly from another application running on a different platform. The information must be transformed into a form that can be understood by both applications. Extensible Markup Language (XML) documents are increasingly used as such a platform-neutral data communication format. This brings about the requirement for transformations between XML and platform-specific data structures.